# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# NOTE: This file is auto generated by the elixir code generator program.
# Do not edit this file manually.

defmodule GoogleApi.Logging.V2.Model.Link do
  @moduledoc """
  Describes a link connected to an analytics enabled bucket.

  ## Attributes

  *   `bigqueryDataset` (*type:* `GoogleApi.Logging.V2.Model.BigQueryDataset.t`, *default:* `nil`) - Optional. The information of a BigQuery Dataset. When a link is created, a BigQuery dataset is created along with it, in the same project as the LogBucket it's linked to. This dataset will also have BigQuery Views corresponding to the LogViews in the bucket.
  *   `createTime` (*type:* `DateTime.t`, *default:* `nil`) - Output only. The creation timestamp of the link.
  *   `description` (*type:* `String.t`, *default:* `nil`) - Optional. Describes this link.The maximum length of the description is 8000 characters.
  *   `lifecycleState` (*type:* `String.t`, *default:* `nil`) - Output only. The resource lifecycle state.
  *   `name` (*type:* `String.t`, *default:* `nil`) - Output only. The resource name of the link. The name can have up to 100 characters. A valid link id (at the end of the link name) must only have alphanumeric characters and underscores within it. "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]" For example:`projects/my-project/locations/global/buckets/my-bucket/links/my_link
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :bigqueryDataset => GoogleApi.Logging.V2.Model.BigQueryDataset.t() | nil,
          :createTime => DateTime.t() | nil,
          :description => String.t() | nil,
          :lifecycleState => String.t() | nil,
          :name => String.t() | nil
        }

  field(:bigqueryDataset, as: GoogleApi.Logging.V2.Model.BigQueryDataset)
  field(:createTime, as: DateTime)
  field(:description)
  field(:lifecycleState)
  field(:name)
end

defimpl Poison.Decoder, for: GoogleApi.Logging.V2.Model.Link do
  def decode(value, options) do
    GoogleApi.Logging.V2.Model.Link.decode(value, options)
  end
end

defimpl Poison.Encoder, for: GoogleApi.Logging.V2.Model.Link do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end
